﻿import mx.controls.Alert;
import mx.managers.PopUpManager;
import mx.rpc.http.HTTPService;

[Bindable]
public var fin : Function;

[Bindable]
private var tituloForma : String = "";

[Bindable]
private var categoria : XML;

[Bindable]
private var contenido : XML;

[Bindable]
private var equipo : XML;

[Bindable]
private var estatus : XML;

public function nuevoContenido(c : XML) : void {
	categoria = c;
	tituloForma = "Nuevo contenido";
	contenido = null;
	equipoHttp.request.proyectoId = categoria.@bid;
	equipoHttp.send();
	estatusHttp.send();
}

public function modificarContenido(ca : XML, co : XML) : void {
	categoria = ca;
	contenido = co;
	tituloForma = "Modificar contenido";
	equipoHttp.request.proyectoId = categoria.@bid;
	equipoHttp.send();
	estatusHttp.send();
	
	nombre.text = co.@nombre;
	comentarios.text = co.@comentarios;
	admin.selected = new Boolean(new Number(co.@admin));
}

private function equipoResult() : void {
	equipo = equipoHttp.lastResult.equipo[0];
	if (contenido != null) {
		var userId : int = contenido.usuario[0].@id;
		var i : int;
		for (i = 0; i < equipo.miembro.length(); i++) {
			if (userId == equipo.miembro[i].@id) {
				encargado.selectedItem = equipo.miembro[i];
				break;
			}
		}
	}
}

private function estatusResult() : void {
	estatus = estatusHttp.lastResult.estatus[0];
	if (contenido != null) {
		var estId : int = contenido.@estatusid;
		var i : int;
		for (i = 0; i < estatus.estatus.length(); i++) {
			if (estId == estatus.estatus[i].@id) {
				estatusCombo.selectedItem = estatus.estatus[i];
				break;
			}
		}
	}
}

private function httpError() : void {
	Alert.show("Error al contactar al servidor", "Error");
}

private function contenidoResult() : void {
	var contenidoResult : mx.rpc.http.mxml.HTTPService;
	if (contenido == null) {
		contenidoResult = nuevoContenidoHttp;
	} else {
		contenidoResult = modificarContenidoHttp;
	}
	
	if (contenidoResult.lastResult.error[0] != undefined) {
		Alert.show(contenidoResult.lastResult.error[0], "Error");
	} else {
		fin();
		cerrarVentana();
	}
}

private function cerrarVentana() : void {
	PopUpManager.removePopUp(this);
}

private function guardar() : void {
	var encargado : XML = encargado.selectedItem as XML;
	var estatusXml : XML = estatusCombo.selectedItem as XML;
	if (contenido == null) {
		nuevoContenidoHttp.request.categoriaId = categoria.@id;
		nuevoContenidoHttp.request.nombre = nombre.text;
		nuevoContenidoHttp.request.comentarios = comentarios.text;
		nuevoContenidoHttp.request.encargadoId = encargado.@id;
		nuevoContenidoHttp.request.admin = admin.selected;
		nuevoContenidoHttp.request.estatusId = estatusXml.@id;
		nuevoContenidoHttp.send();
	} else {
		modificarContenidoHttp.request.id = contenido.@id;
		modificarContenidoHttp.request.nombre = nombre.text;
		modificarContenidoHttp.request.comentarios = comentarios.text;
		modificarContenidoHttp.request.encargadoId = encargado.@id;
		modificarContenidoHttp.request.admin = admin.selected;
		modificarContenidoHttp.request.estatusId = estatusXml.@id;
		modificarContenidoHttp.send();
	}
}